package com.ruoyi.certificate.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 农检通合格证对象 njt_certificate
 * 
 * @author ruoyi
 * @date 2025-03-05
 */
public class NjtCertificate extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 账号 */
    @Excel(name = "账号")
    private String account;

    /** 生产主体 */
    @Excel(name = "生产主体")
    private String producerName;

    /** 法人姓名 */
    @Excel(name = "法人姓名")
    private String legalPersonName;

    /** 省 */
    @Excel(name = "省")
    private String province;

    /** 市 */
    @Excel(name = "市")
    private String city;

    /** 区/县 */
    @Excel(name = "区/县")
    private String district;

    /** 镇/乡 */
    @Excel(name = "镇/乡")
    private String township;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String addressDetail;

    /** 生产地址 */
    @Excel(name = "生产地址")
    private String productionAddress;

    /** 食用农产品名称 */
    @Excel(name = "食用农产品名称")
    private String productName;

    /** 重量（数量） */
    @Excel(name = "重量", readConverterExp = "数=量")
    private BigDecimal quantity;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 合格方式 */
    @Excel(name = "合格方式")
    private String qualificationMethod;

    /** 检验机构 */
    @Excel(name = "检验机构")
    private String inspectionAgency;

    /** 检测报告（存储文件路径或URL） */
    @Excel(name = "检测报告", readConverterExp = "存=储文件路径或URL")
    private String inspectionReport;

    /** 开具日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开具日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date issueDate;

    /** 合格证编号 */
    @Excel(name = "合格证编号")
    private String certificateNumber;

    /** 打印次数 */
    @Excel(name = "打印次数")
    private Long printCount;

    /** 扫描次数 */
    @Excel(name = "扫描次数")
    private Long scanCount;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setAccount(String account) 
    {
        this.account = account;
    }

    public String getAccount() 
    {
        return account;
    }
    public void setProducerName(String producerName) 
    {
        this.producerName = producerName;
    }

    public String getProducerName() 
    {
        return producerName;
    }
    public void setLegalPersonName(String legalPersonName) 
    {
        this.legalPersonName = legalPersonName;
    }

    public String getLegalPersonName() 
    {
        return legalPersonName;
    }
    public void setProvince(String province) 
    {
        this.province = province;
    }

    public String getProvince() 
    {
        return province;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setDistrict(String district) 
    {
        this.district = district;
    }

    public String getDistrict() 
    {
        return district;
    }
    public void setTownship(String township) 
    {
        this.township = township;
    }

    public String getTownship() 
    {
        return township;
    }
    public void setAddressDetail(String addressDetail) 
    {
        this.addressDetail = addressDetail;
    }

    public String getAddressDetail() 
    {
        return addressDetail;
    }
    public void setProductionAddress(String productionAddress) 
    {
        this.productionAddress = productionAddress;
    }

    public String getProductionAddress() 
    {
        return productionAddress;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }
    public void setQuantity(BigDecimal quantity) 
    {
        this.quantity = quantity;
    }

    public BigDecimal getQuantity() 
    {
        return quantity;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setQualificationMethod(String qualificationMethod) 
    {
        this.qualificationMethod = qualificationMethod;
    }

    public String getQualificationMethod() 
    {
        return qualificationMethod;
    }
    public void setInspectionAgency(String inspectionAgency) 
    {
        this.inspectionAgency = inspectionAgency;
    }

    public String getInspectionAgency() 
    {
        return inspectionAgency;
    }
    public void setInspectionReport(String inspectionReport) 
    {
        this.inspectionReport = inspectionReport;
    }

    public String getInspectionReport() 
    {
        return inspectionReport;
    }
    public void setIssueDate(Date issueDate) 
    {
        this.issueDate = issueDate;
    }

    public Date getIssueDate() 
    {
        return issueDate;
    }
    public void setCertificateNumber(String certificateNumber) 
    {
        this.certificateNumber = certificateNumber;
    }

    public String getCertificateNumber() 
    {
        return certificateNumber;
    }
    public void setPrintCount(Long printCount) 
    {
        this.printCount = printCount;
    }

    public Long getPrintCount() 
    {
        return printCount;
    }
    public void setScanCount(Long scanCount) 
    {
        this.scanCount = scanCount;
    }

    public Long getScanCount() 
    {
        return scanCount;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("account", getAccount())
            .append("producerName", getProducerName())
            .append("legalPersonName", getLegalPersonName())
            .append("province", getProvince())
            .append("city", getCity())
            .append("district", getDistrict())
            .append("township", getTownship())
            .append("addressDetail", getAddressDetail())
            .append("productionAddress", getProductionAddress())
            .append("productName", getProductName())
            .append("quantity", getQuantity())
            .append("unit", getUnit())
            .append("qualificationMethod", getQualificationMethod())
            .append("inspectionAgency", getInspectionAgency())
            .append("inspectionReport", getInspectionReport())
            .append("issueDate", getIssueDate())
            .append("certificateNumber", getCertificateNumber())
            .append("printCount", getPrintCount())
            .append("scanCount", getScanCount())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
